﻿using System.ComponentModel;
using System.IO;
using ChiWalker.Utilities;
using Styx.Helpers;

namespace ChiWalker.Settings
{
    internal class WarriorSettings : Styx.Helpers.Settings
    {
        public WarriorSettings()
            : base(Path.Combine(ChiWalkerSettings.CharacterSettingsPath, "WarriorSettings.xml"))
        {
        }


        [Setting]
        [Styx.Helpers.DefaultValue(true)]
        [Category("Protection")]
        public bool UseBerserkOnCd { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(SpellUsage.OnBosses)]
        [Category("Dps")]
        public SpellUsage Recklessness { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(SpellUsage.OnBosses)]
        [Category("Dps")]
        public SpellUsage ShatteringThrow { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(SpellUsage.OnBosses)]
        [Category("Talent")]
        public SpellUsage Avatar { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(80)]
        [Category("Talent")]
        public int EnragedRegenerationHp { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(SpellUsage.OnBosses)]
        [Category("Dps")]
        public SpellUsage SkullBanner { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(60)]
        [Category("Dps")]
        [Limit(0, 100)]
        public int RageDumpPct { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(80)]
        [Category("Talent")]
        [Limit(0, 100)]
        public int VictoryRushHp { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(85)]
        [Category("Protection")]
        [Limit(0, 100)]
        public int ShieldBarrierPct { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(60)]
        [Category("Protection")]
        [Limit(0, 100)]
        public int ShieldWallPct { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(60)]
        [Category("Protection")]
        [Limit(0, 100)]
        public int LastStandPct { get; set; }
    }
}